﻿Imports Persistencia
Public Class ctrTipoPA
    Inherits ControlePadrao.ctrPadrao

#Region "Variáveis"
    Private objTIpoPA As New perTipoPA

    Public Mensagens As String() = {"Tipo de ponto de atendimento já cadastrado.",
                                 "Descrição do tipo de ponto obrigatória."}

#End Region

#Region "Propriedades"

    Public Property CodTipoPA As Int32

#End Region

#Region "Enumerações"

    Public Enum eMensagens
        JA_CADASTRADO = 0
        DESCRICAO_OBRIGATORIA = 1
    End Enum

#End Region

#Region "Métodos"

    Public Function sqlConsulta() As String

        Return objTIpoPA.sqlConsulta()

    End Function

    Public Function gravarTipoPA(ByVal iCodTipoPA As Int32,
                                        ByVal sDescricao As String,
                                        ByVal bEspComplemento As Boolean) As Boolean
        Dim bRetorno As Boolean = False

        Try
            If Me.validarTipoPA(iCodTipoPA,
                                    sDescricao.Trim) Then

                If iCodTipoPA = 0 Then
                    iCodTipoPA = Me.objTIpoPA.inserirTIpoPA(sDescricao.Trim, bEspComplemento)

                Else
                    Me.objTIpoPA.editarTipoPA(iCodTipoPA, sDescricao.Trim, bEspComplemento)
                End If

                Me.CodTipoPA = iCodTipoPA

                bRetorno = True

            End If

        Catch ex As Exception

            Throw New Exception("Ocorreu um erro no método gravarTipoPA." & _
                                Environment.NewLine & ex.Message)

        End Try

        Return bRetorno

    End Function

    Private Function validarTipoPA(ByVal iCodTipoPA As Int32,
                                   ByVal sDescricao As String) As Boolean
        Dim bRetorno As Boolean = True

        Try
            If sDescricao = String.Empty Then
                MyBase.adicionarMensagensValidacao(eMensagens.DESCRICAO_OBRIGATORIA,
                                                   ctrTipoPA.eTipoLog.ERRO,
                                                   Me.Mensagens(eMensagens.DESCRICAO_OBRIGATORIA))

                bRetorno = False
            Else
                If Not Me.objTIpoPA.verificarTipoPaCadastrado(iCodTipoPA, sDescricao) Then
                    MyBase.adicionarMensagensValidacao(eMensagens.JA_CADASTRADO,
                                                       ctrTipoPA.eTipoLog.ERRO,
                                                       Me.Mensagens(eMensagens.JA_CADASTRADO))

                    bRetorno = False
                End If
            End If

        Catch ex As Exception

            Throw New Exception("Ocorreu um erro no método validarTipoPA." & _
                                Environment.NewLine & ex.Message)

        End Try

        Return bRetorno

    End Function

    Public Function selecionarDadosTipoPA(ByVal iCodTipoPA As Int32) As DataRow

        Try

            Return Me.objTIpoPA.selecionarDadosTiposPA(iCodTipoPA)

        Catch ex As Exception

            Throw New Exception("Ocorreu um erro no método selecionarDadosTipoPA." & _
                                Environment.NewLine & ex.Message)

        End Try

    End Function

    Public Function excluirTipoPA(ByVal iCodTipoPA As Int32) As Boolean
        Dim bRetorno As Boolean = False
        Try

            Me.objTIpoPA.excluirTipoPA(iCodTipoPA)
            bRetorno = True

        Catch ex As Exception
            Throw New Exception("Ocorreu um erro no método excluirTipoPA." & _
                                Environment.NewLine & ex.Message)

        End Try

        Return bRetorno

    End Function

#End Region

End Class
